package com.dlxj.service;

import java.util.Date;
import java.util.List;

import com.dlxj.entity.Group;
import com.dlxj.entity.Model;
import com.dlxj.entity.User;
import com.dlxj.util.PageBean;

public interface UserService {

	
	public List<Group> findgroup();
	
	
	/**
	 * 用户登录方法
	 * 
	 * @param user
	 *            只有属性username password 有值
	 * @return 返回状态码
	 */
	public int login(User user);

	/**
	 * 用户注销方法
	 */
	public void loginOut();

	/**
	 * 修改用户资料
	 * 
	 * @param user
	 * @return 返回状态码
	 */
	public int modifyInfo(User user);

	public int modifyGroup(int uid, Group group);

	/**
	 * 根据用户姓名和状态查找用户列表
	 * 
	 * @param name
	 *            姓名 可空
	 * @param pageIndex
	 *            页数
	 * @return 返回状态码
	 */
	public PageBean findUserList(String name, int pageIndex);

	/**
	 * 修改用户状态
	 * 
	 * @param uid
	 *            用户ID
	 * @param state
	 *            状态
	 * @return 返回状态码
	 */
	public int modifyState(int uid, int state);

	/**
	 * 添加用户
	 * 
	 * @param user
	 *            用户对象
	 * @return 返回状态码
	 */
	public int addUser(User user);

	/**
	 * 修改用户的离职时间
	 * 
	 * @param uid
	 *            用户ID
	 * @param date
	 *            离职时间
	 * @return 返回状态码
	 */
	public int modifyLeaveDate(int uid, Date date);

	/**
	 * 删除用户
	 * 
	 * @param uid
	 *            用户ID
	 * @return 返回状态码
	 */
	public int deleteUser(int uid);

	/**
	 * 根据用户ID查询所拥有的权限模块
	 * 
	 * @param uid
	 *            用户ID
	 * @return 模块集合
	 */
	public List<Model> findModel(int uid);

	public int updatePassword(int uid, String oldpwd, String newpwd);

	public List<User> findByGroupName(String name);

	public User findById(int id);

}
